package com.groupfour.attendancemanagementsystem.service;


import com.groupfour.attendancemanagementsystem.entity.DO.LeaveDO;
import com.groupfour.attendancemanagementsystem.entity.DO.LeaveOperateDO;
import com.groupfour.attendancemanagementsystem.entity.DTO.LeaveDTO;

import java.util.List;
import java.util.Map;

public interface LeaveService {

    //查询所有请假记录
    List<LeaveDO> findAllLeave();

    //通过提交时间、审批状态、原因、主题查询请假记录
    List<LeaveDO> findLeaveByStudent(LeaveDO leave);

    //新增请假记录（学生:附件在controller写文件上传留下url）
    int addLeave(LeaveDO leave);

    //通过id查看假条详情（学生：详情、不通过原因）
    LeaveDO findLeave(Integer id);

    //通过id查看学生假条的详情然后修改
    int updateLeaveByStudent(LeaveDO leave);

    //通过提交日期、院系、专业、年级、班级、学号、姓名、主题、请假原因、审批状态查询请假记录
    List<LeaveDTO> findLeaveByTeacher(LeaveDTO leaveDTO);

    //教师通过请假记录id处理请假记录
    int updateLeaveByTeacher(LeaveDO leave);

    //管理员查看所有请假记录
    List<LeaveDTO> findLeaveByManage();

    //管理员查看所有操作记录
    List<LeaveOperateDO> findHandleByManage();

}
